<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则表达式语法</title>
</head>
<body>
<script>
    /* 量词:设置内容出现的次数,只对它前面的内容起作用
    *        []  | 或
    *       {n} 内容出现次数
    *       {m,n} 出现m到n次
    *       {m,}  m次以上
    *       +  至少1个   相当于{1,}
    *       * 0个或多个  相当于{0,}
    *       ? 0个或者1个  相当于{0,1}
    *       ^表示开头
    *       $表示结尾
    * */
    //举例1检查一个字符串中是否含有aaa
    var reg=/a{3}/;//表示3个a  3个连续a
    console.log(reg.test("abc"));//返回false
    console.log(reg.test("aaabdf"));//返回true
    //举例2 检查一个字符串中是否含有ababab
    var reg1=/ab{3}/;//表示a一次 b3次
    console.log(reg1.test("abbb"));//返回true

    var reg2=/(ab){3}/;//表示 ab 一起3次
    console.log(reg2.test("ababab"));//返回true
    //举例3 {m,n} 出现m到n次
    var reg3=/ab{1,3}c/; //表示a b 出现1-3次 c都为true
    console.log(reg3.test("abc"));//b出现1次 返回true
    console.log(reg3.test("abbc"));//b出现2次 返回true
    console.log(reg3.test("abbbc"));//b出现3次 返回true
    console.log(reg3.test("abbbbc"));//b出现4次 返回false
    //举例3 {m,} 出现m次以上
    var reg4=/ab{2,}/;//表示b出现2次以上都为true
    console.log(reg4.test("ab"));//b出现1次 返回false
    console.log(reg4.test("abbc"));//b出现2次 返回true b=2次
    console.log(reg4.test("abbbbc"));//b出现4次 返回false  b>2次
    //举例4 + 至少1次
    var reg5=/ab+c/; // b+ 表示b至少1次
    console.log(reg5.test("ac"));//返回false
    console.log(reg5.test("abc"));//返回true
    console.log(reg5.test("abbc"));//返回true
    console.log(reg5.test("abbbc"));//返回true
    //举例5 * 0个或者多个
    var reg6=/ab*c/;//b* 表示b 出现0次或者多次  或有或无 都返回true
    console.log(reg6.test("ac")); //返回true
    console.log(reg6.test("abc"));//返回true
    console.log(reg6.test("abbc"));//返回true
    //举例6 ? 0个或者1个 相当于{0,1}
    var reg7=/ab?c/;
    console.log(reg7.test("ac"));// b出现0次 返回true
    console.log(reg7.test("abc"));// b出现1次 返回true
    console.log(reg7.test("abbc"));// b出现2次 返回false
    //举例7 ^ 表示开头   检查一个字符串是否是a开头
    var reg8=/^a/;//是否a开头
    console.log(reg8.test("abc"));//返回true
    console.log(reg8.test("bcdaa"))// 返回false
    //举例8 $表示结尾
    var reg9=/a$/;//表示以a结尾
    console.log(reg9.test("abcdfggh"));//返回false
    console.log(reg9.test("ba"));//返回true

    var reg10=/^a$/;//表示以a开头 以a结尾  就是一个a
    console.log(reg10.test("aaa"));//返回false
    console.log(reg10.test("a"));//返回true

    var reg11=/^a|a$/;//表示以a开头或者a结尾都返回true
    console.log(reg11.test("abbbb"));//返回true
    console.log(reg11.test("bbaa"));//返回true
    //练习题  创建一个正则表达式，检查一个字符串是否是一个合法的手机号
    var phoneString="13245678911";
    /*分析过程 13245678911
    * 1.以1开头 ^1
    * 2.第2位 3-9任意数字 [3-9]
    * 3.三位以后的任意数字0-9  9个 [0-9]{9}
    */
    var phoneReg=/^1[3-9][0-9{9}$]/;
    console.log(phoneReg.test(phoneString));//返回true

</script>
</body>
</html>